package main

import "fmt"

// go语言的数组传参要严格按照定义的长度
func printArray(myArray [4]int) {
	for index, value := range myArray {
		fmt.Println("index=", index, "value=", value)
	}
	// 值拷贝
	myArray[0] = 111
}

func main() {
	//固定长度数组
	var myArray1 [10]int

	//数组定义,10个长度，给前4个赋值的话的后面的也跟默认值
	myArray2 := [10]int{1, 2, 3, 4}
	myArray3 := [4]int{11, 22, 33, 44}

	//通过数组长度遍历
	for i := 0; i < len(myArray1); i++ {
		fmt.Println(myArray1[i])
	}

	//通过index和value取出索引和值，进行遍历
	for index, value := range myArray2 {
		fmt.Println("index=", index, "value", value)
	}

	//查看数组的数据类型
	fmt.Printf("myArray1 type =%T\n", myArray1)
	fmt.Printf("myArray2 type =%T\n", myArray2)
	fmt.Printf("myArray3 type =%T\n", myArray3)
	printArray(myArray3)

}
